package com.shuda.business.channel.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.shuda.business.channel.entity.ChannelEntity;
import com.shuda.common.dto.PageDTO;
import com.shuda.common.utils.PageResult;

import java.util.List;

/**
 * 渠道服务接口类
 */
public interface ChannelService {

    /**
     * 分页查询渠道列表
     */
    PageResult<ChannelEntity> getChannelPage(PageDTO pageDTO, QueryWrapper<ChannelEntity> queryWrapper);

    /**
     * 根据ID获取渠道
     */
    ChannelEntity getById(Long id);

    /**
     * 创建渠道
     */
    void createChannel(ChannelEntity channel);

    /**
     * 更新渠道
     */
    void updateChannel(ChannelEntity channel);

    /**
     * 删除渠道
     */
    void deleteChannel(Long id);

    /**
     * 批量删除渠道
     */
    void deleteChannels(List<Long> ids);

    /**
     * 更新渠道状态
     */
    void updateChannelStatus(Long id, String status);

    /**
     * 测试渠道连接
     */
    boolean testChannel(Long id);

    /**
     * 获取渠道配置
     */
    ChannelEntity getChannelConfig(Long id);

    /**
     * 更新渠道配置
     */
    void updateChannelConfig(Long id, ChannelEntity config);
}